
class EnhancedMockDataSource {
  // 生成增强的用户数据
  static List<Map<String, dynamic>> getMockUsers() {
    return [
      {
        '_id': 'user_001',
        'username': 'testuser1',
        'name': '测试用户1',
        'email': 'testuser1@demo.com',
        'password': 'password123',
        'avatar': 'https://example.com/avatar1.jpg',
        'bio': '热爱旅行的摄影师，专注于欧洲文化探索',
        'followers': ['user_002', 'user_003', 'user_004'], // 3个粉丝
        'following': ['user_002', 'user_005'], // 关注2个用户
        'created_at':
            DateTime.now()
                .subtract(const Duration(days: 120))
                .toIso8601String(),
      },
      {
        '_id': 'user_002',
        'username': 'testuser2',
        'name': '测试用户2',
        'email': 'testuser2@demo.com',
        'password': 'password123',
        'avatar': 'https://example.com/avatar2.jpg',
        'bio': '背包客，分享世界各地的旅行故事',
        'followers': ['user_001', 'user_003', 'user_005'],
        'following': ['user_001'],
        'created_at':
            DateTime.now().subtract(const Duration(days: 90)).toIso8601String(),
      },
      {
        '_id': 'user_003',
        'username': 'testuser3',
        'name': '测试用户3',
        'email': 'testuser3@demo.com',
        'password': 'password123',
        'avatar': 'https://example.com/avatar3.jpg',
        'bio': '希腊本地人，分享地道的希腊旅行体验',
        'followers': ['user_001', 'user_002', 'user_004'],
        'following': ['user_001', 'user_002', 'user_005'],
        'created_at':
            DateTime.now()
                .subtract(const Duration(days: 200))
                .toIso8601String(),
      },
      {
        '_id': 'user_004',
        'username': 'testuser4',
        'name': '测试用户4',
        'email': 'testuser4@demo.com',
        'password': 'password123',
        'avatar': 'https://example.com/avatar4.jpg',
        'bio': '美食爱好者，寻找世界各地的美食文化',
        'followers': ['user_003', 'user_005'],
        'following': ['user_001', 'user_003'],
        'created_at':
            DateTime.now().subtract(const Duration(days: 60)).toIso8601String(),
      },
      {
        '_id': 'user_005',
        'username': 'testuser5',
        'name': '测试用户5',
        'email': 'testuser5@demo.com',
        'password': 'password123',
        'avatar': 'https://example.com/avatar5.jpg',
        'bio': '海岛控，专门探索地中海各个美丽的岛屿',
        'followers': ['user_002', 'user_004'],
        'following': ['user_003'],
        'created_at':
            DateTime.now().subtract(const Duration(days: 30)).toIso8601String(),
      },
    ];
  }

  // 生成游记数据
  static List<Map<String, dynamic>> getMockPosts() {
    return [
      {
        '_id': 'post_001',
        'user_id': 'user_001',
        'title': '圣托里尼的蓝白世界：爱琴海上的明珠',
        'content': '''
# 圣托里尼的魅力之旅

圣托里尼岛，这颗镶嵌在爱琴海上的蓝白明珠，是每个旅行者心中的梦想之地。

## 伊亚小镇的黄昏
当夕阳西下，整个小镇都被染成了金黄色。白色的建筑与蓝色的圆顶教堂形成了完美的对比。

## 费拉的悬崖漫步
在悬崖边漫步，欣赏着无边的海景，感受着地中海的温暖海风。

**推荐景点：**
- 伊亚日落观景台
- 费拉主教座堂
- 红海滩

这里真的是一个让人流连忘返的地方！
        ''',
        'cover_image': 'https://example.com/santorini_sunset.jpg',
        'location': {
          'name': '希腊圣托里尼',
          'coordinates': [25.4615, 36.3932],
        },
        'tags': ['希腊', '海岛', '日落', '蓝白建筑', '浪漫'],
        'views': 1250,
        'likes': ['user_002', 'user_003', 'user_004'],
        'comments': ['comment_001', 'comment_002'],
        'created_at':
            DateTime.now().subtract(const Duration(days: 5)).toIso8601String(),
        'updated_at':
            DateTime.now().subtract(const Duration(days: 5)).toIso8601String(),
      },
      {
        '_id': 'post_002',
        'user_id': 'user_002',
        'title': '背包客的雅典攻略：古老文明与现代生活的碰撞',
        'content': '''
# 雅典：历史与现代的完美融合

作为一个背包客，我在雅典度过了难忘的一周。这座城市完美地融合了古老的历史和现代的生活方式。

## 卫城博物馆
必须要去的地方！建议早上9点前到达，避开人群。

## 普拉卡老城区
晚上在这里用餐，体验地道的希腊美食。

**预算提醒：**
- 卫城门票：€20
- 青年旅社：€15/晚
- 当地美食：€8-15/餐

总体来说，雅典是一个非常适合背包客的城市！
        ''',
        'cover_image': 'https://example.com/athens_acropolis.jpg',
        'location': {
          'name': '希腊雅典',
          'coordinates': [23.7275, 37.9838],
        },
        'tags': ['希腊', '历史', '背包客', '博物馆', '古迹'],
        'views': 890,
        'likes': ['user_001', 'user_003', 'user_005'],
        'comments': ['comment_003'],
        'created_at':
            DateTime.now().subtract(const Duration(days: 3)).toIso8601String(),
        'updated_at':
            DateTime.now().subtract(const Duration(days: 3)).toIso8601String(),
      },
      {
        '_id': 'post_003',
        'user_id': 'user_003',
        'title': '希腊本地人推荐：米科诺斯岛的隐秘海滩',
        'content': '''
# 米科诺斯岛：不只有天堂海滩

作为希腊本地人，我要为大家介绍几个游客很少知道的隐秘海滩。

## Fokos海滩
位于岛屿北部，几乎没有游客，是冲浪爱好者的天堂。

## Kapari海滩
日落时分特别美丽，适合情侣约会。

**本地小贴士：**
- 租摩托车最方便（€15/天）
- 避开7-8月的旅游高峰期
- 尝试当地的鱼汤（Psarosoupa）

希望这些建议能帮助到大家！
        ''',
        'cover_image': 'https://example.com/mykonos_beach.jpg',
        'location': {
          'name': '希腊米科诺斯',
          'coordinates': [25.3289, 37.4467],
        },
        'tags': ['希腊', '海滩', '本地攻略', '隐秘景点', '冲浪'],
        'views': 650,
        'likes': ['user_001', 'user_002'],
        'comments': [],
        'created_at':
            DateTime.now().subtract(const Duration(days: 1)).toIso8601String(),
        'updated_at':
            DateTime.now().subtract(const Duration(days: 1)).toIso8601String(),
      },
    ];
  }

  // 生成评论数据
  static List<Map<String, dynamic>> getMockComments() {
    return [
      {
        '_id': 'comment_001',
        'post_id': 'post_001',
        'user_id': 'user_002',
        'content': '太美了！我也想去圣托里尼看日落，有什么酒店推荐吗？',
        'parent_id': null,
        'created_at':
            DateTime.now().subtract(const Duration(days: 4)).toIso8601String(),
      },
      {
        '_id': 'comment_002',
        'post_id': 'post_001',
        'user_id': 'user_001',
        'content': '@wanderlust_alex 推荐Canaves Oia酒店，虽然贵一点但是视野绝佳！',
        'parent_id': 'comment_001',
        'created_at':
            DateTime.now().subtract(const Duration(days: 4)).toIso8601String(),
      },
      {
        '_id': 'comment_003',
        'post_id': 'post_002',
        'user_id': 'user_004',
        'content': '雅典的美食确实不错！特别推荐那里的穆萨卡(Moussaka)！',
        'parent_id': null,
        'created_at':
            DateTime.now().subtract(const Duration(days: 2)).toIso8601String(),
      },
    ];
  }

  // 生成收藏数据
  static List<Map<String, dynamic>> getMockBookmarks() {
    return [
      {
        'user_id': 'user_002',
        'post_id': 'post_001',
        'created_at':
            DateTime.now().subtract(const Duration(days: 4)).toIso8601String(),
      },
      {
        'user_id': 'user_003',
        'post_id': 'post_001',
        'created_at':
            DateTime.now().subtract(const Duration(days: 3)).toIso8601String(),
      },
      {
        'user_id': 'user_001',
        'post_id': 'post_002',
        'created_at':
            DateTime.now().subtract(const Duration(days: 2)).toIso8601String(),
      },
      {
        'user_id': 'user_005',
        'post_id': 'post_003',
        'created_at': DateTime.now().toIso8601String(),
      },
    ];
  }

  // 生成通知数据
  static List<Map<String, dynamic>> getMockNotifications() {
    return [
      {
        '_id': 'notif_001',
        'user_id': 'user_001',
        'type': 'like',
        'sender_id': 'user_002',
        'post_id': 'post_001',
        'is_read': false,
        'created_at':
            DateTime.now().subtract(const Duration(hours: 2)).toIso8601String(),
      },
      {
        '_id': 'notif_002',
        'user_id': 'user_001',
        'type': 'comment',
        'sender_id': 'user_003',
        'post_id': 'post_001',
        'is_read': false,
        'created_at':
            DateTime.now().subtract(const Duration(hours: 4)).toIso8601String(),
      },
      {
        '_id': 'notif_003',
        'user_id': 'user_002',
        'type': 'follow',
        'sender_id': 'user_005',
        'post_id': null,
        'is_read': true,
        'created_at':
            DateTime.now().subtract(const Duration(days: 1)).toIso8601String(),
      },
    ];
  }

  // 增强的目的地数据
  static List<Map<String, dynamic>> getEnhancedDestinations() {
    return [
      {
        '_id': 'dest_001',
        'name': '圣托里尼',
        'nameEn': 'Santorini',
        'description': '爱琴海上的蓝白天堂，以其独特的火山地貌和浪漫的日落闻名世界',
        'country': '希腊',
        'region': '基克拉迪群岛',
        'latitude': 36.3932,
        'longitude': 25.4615,
        'images': [
          'https://example.com/santorini1.jpg',
          'https://example.com/santorini2.jpg',
        ],
        'coverImage': 'https://example.com/santorini_cover.jpg',
        'rating': 4.8,
        'reviewCount': 2340,
        'tags': ['海岛', '浪漫', '日落', '蓝白建筑', '火山'],
        'climate': {
          'type': '地中海气候',
          'temperature': '18-28°C',
          'rainfall': '少雨',
        },
        'bestTravelTime': '4-6月, 9-10月',
        'languages': ['希腊语', '英语'],
        'currency': '欧元',
        'timeZone': 2,
        'attractions': [
          {
            'name': '伊亚日落观景台',
            'image': 'https://example.com/oia_sunset.jpg',
            'rating': 4.9,
          },
          {
            'name': '红海滩',
            'image': 'https://example.com/red_beach.jpg',
            'rating': 4.5,
          },
        ],
        'hotels': [
          {'name': 'Canaves Oia酒店', 'price_range': '€300-600'},
          {'name': 'Grace酒店', 'price_range': '€400-800'},
        ],
        'geo_tag': '欧洲',
        'createdAt':
            DateTime.now()
                .subtract(const Duration(days: 100))
                .toIso8601String(),
        'updatedAt':
            DateTime.now().subtract(const Duration(days: 10)).toIso8601String(),
      },
      {
        '_id': 'dest_002',
        'name': '雅典',
        'nameEn': 'Athens',
        'description': '西方文明的摇篮，拥有丰富的历史遗迹和现代都市生活',
        'country': '希腊',
        'region': '阿提卡',
        'latitude': 37.9838,
        'longitude': 23.7275,
        'images': [
          'https://example.com/athens1.jpg',
          'https://example.com/athens2.jpg',
        ],
        'coverImage': 'https://example.com/athens_cover.jpg',
        'rating': 4.5,
        'reviewCount': 1890,
        'tags': ['历史', '古迹', '博物馆', '文化', '首都'],
        'climate': {
          'type': '地中海气候',
          'temperature': '15-32°C',
          'rainfall': '冬季多雨',
        },
        'bestTravelTime': '4-6月, 9-11月',
        'languages': ['希腊语', '英语'],
        'currency': '欧元',
        'timeZone': 2,
        'attractions': [
          {
            'name': '雅典卫城',
            'image': 'https://example.com/acropolis.jpg',
            'rating': 4.7,
          },
          {
            'name': '古代市集',
            'image': 'https://example.com/agora.jpg',
            'rating': 4.3,
          },
        ],
        'hotels': [
          {'name': 'Hotel Grande Bretagne', 'price_range': '€200-400'},
          {'name': 'Electra Palace Athens', 'price_range': '€150-300'},
        ],
        'geo_tag': '欧洲',
        'createdAt':
            DateTime.now()
                .subtract(const Duration(days: 100))
                .toIso8601String(),
        'updatedAt':
            DateTime.now().subtract(const Duration(days: 10)).toIso8601String(),
      },
      {
        '_id': 'dest_003',
        'name': '米科诺斯',
        'nameEn': 'Mykonos',
        'description': '著名的派对岛屿，拥有美丽的海滩和充满活力的夜生活',
        'country': '希腊',
        'region': '基克拉迪群岛',
        'latitude': 37.4467,
        'longitude': 25.3289,
        'images': [
          'https://example.com/mykonos1.jpg',
          'https://example.com/mykonos2.jpg',
        ],
        'coverImage': 'https://example.com/mykonos_cover.jpg',
        'rating': 4.6,
        'reviewCount': 1560,
        'tags': ['海岛', '派对', '海滩', '夜生活', '风车'],
        'climate': {
          'type': '地中海气候',
          'temperature': '17-27°C',
          'rainfall': '少雨',
        },
        'bestTravelTime': '5-9月',
        'languages': ['希腊语', '英语'],
        'currency': '欧元',
        'timeZone': 2,
        'attractions': [
          {
            'name': '米科诺斯风车',
            'image': 'https://example.com/windmills.jpg',
            'rating': 4.4,
          },
          {
            'name': '天堂海滩',
            'image': 'https://example.com/paradise_beach.jpg',
            'rating': 4.6,
          },
        ],
        'hotels': [
          {'name': 'Cavo Tagoo', 'price_range': '€350-700'},
          {'name': 'Belvedere酒店', 'price_range': '€250-500'},
        ],
        'geo_tag': '欧洲',
        'createdAt':
            DateTime.now()
                .subtract(const Duration(days: 100))
                .toIso8601String(),
        'updatedAt':
            DateTime.now().subtract(const Duration(days: 10)).toIso8601String(),
      },
    ];
  }
}
